Digital signal compression is widely used in many multimedia applications and devices. Digital signal compression using a coder/decoder (codec) allows streaming media, such as audio or video signals to be transmitted over the Internet or stored on compact discs. A typical codec involves an encoder on the transmitting side and a decoder on the receiving side. Encoders and decoders may be implemented in hardware or software or some combination of both. A number of different standards of digital video compression have emerged, including H.261, H.263; MPEG-1, MPEG-2, MPEG-4; and AVC (H.264). These standards, as well as other video compression technologies, seek to efficiently represent a video frame picture by eliminating the spatial and temporal redundancies in the picture and among successive pictures. Through the use of such compression standards, video contents can be carried in highly compressed video bit streams, and thus efficiently stored in disks or transmitted over networks.
Unfortunately, the storage media and networks are not always reliable, so that errors may occur during storage or transmission. Thus, some video stream data may be corrupted, which may result in termination of decoding/playing; or, if the decoding continues, some damaged picture frames or partial frames. Such errors may propagate to the following pictures, due to the predictive nature of video compression. Overall, errors result in poor video playback; therefore, they need to be properly handled in order to mitigate their impact. Consequently, there are needs for efficient error concealment methods, by using which, the corrupted video pictures can be concealed and the display quality may be enhanced. In block-based video compression standards and codecs, such as H.261, H.263, MPEG-1, MPEG-2, MPEG-4 and H.264/AVC, video blocks (or macroblocks) are considered the basic encoding, decoding and processing unit. Thus, by concealing all corrupted video blocks, a video picture may be concealed.
Sometimes, after a decoder has done what it can do best, with or without using error resilience methods, there are still errors in the video stream that can not be recovered. If not concealed properly, these errors may be reflected in the reconstructed or displayed video pictures and are also likely to propagate to following pictures. Some error resilience and concealment techniques are available for existing codecs. For example, the H.264/AVC standard summarized a list of those technologies and gives an example of video block error concealment in the decoder extension. The error resilience methods include: Intra Placement, Picture Segmentation, Reference Picture Selection, Data Partitioning, Parameter Sets, Flexible Macroblock Ordering and Redundant Slices. These methods are usually implemented in the encoder to protect the bit stream from errors, or provide redundant information for the decoder, so that the decoder can recover the corrupted bit stream and resume decoding more easily. However, there are shortcomings to existing error concealment techniques.
It is within this context that embodiments of the present invention arise.